
import { useState, useEffect, useRef } from 'react'
import { debounce } from 'lodash';
// interface DebounceProps {
//   time:number,
//   fn:() => void
// }
// useDebounce接受三个参数，分别为回调函数，时间间隔以及依赖项数组，它暴露了cancel API，主要是用来控制何时停止防抖函数用的。

interface DebounceProps {
  delay?: number,
  callback:(e:any) => void,
  event:any
}

// const useDebounce = (callback:any, delay?:any) => {
//   useEffect(() => {
//     const hander = setTimeout(() => {
//       callback()
//     }, delay)
//     return () => {
//       clearTimeout(hander)
//     }
//   }, [])
// }

// export default useDebounce;

// export const useDebounce = ({time, fn}:DebounceProps) => {
//   let timer:any = useRef();
//   useEffect(() => {
//     if (timer.current) {
//       clearTimeout(timer.current)
//     }
//     timer.current = setTimeout(() => {
//       fn()
//     }, time);
//   }, [])

//   const cancel = () => {
//     clearTimeout(timer.current)
//     timer = null
//   }
//   return [cancel]
// }

// export default useDebounce;
